1. Field of the Invention
The present invention relates to an information processing device and to a device initialization method and device initialization program in the information process device, and more particularly relates to a technique for using initialization information acquired by the initialization process of a device that is executed by firmware before execution of the OS to omit a portion of the initialization process of the device carried out by the OS.
2. Description of the Related Art
Many devices such as hard disks, graphics cards, and network cards require that the initialization process of these devices be carried out in an information processing device to enable access from the information processing device.
The initialization process of a device in an information processing device involves setting the device in a state that allows access from the information processing device by recognizing the connection state of the device, allocating important resources such as I/O (input/output) port numbers and IRQ (Interrupt ReQuest) numbers, and setting register information in a register belonging to the device.
Recognizing the connection state of a device is a process of detecting the device that is connected to the information processing device and acquiring basic information such as the device name of the device that has been detected. The method of detecting a device differs according to the device.
The I/O port number is the identification number of a device that is assigned to each device from the information processing device.
IRQ is an electrical signal by which a device notifies the CPU (Central Processing Unit) of the information processing device of changes when changes occur in some states of the device. The IRQ number is an identification number for, when notifying the CPU of a change in the state of the device, identifying which device is carrying out the notification.
When an information processing device accesses a device, the input and output of data to the device is carried out by designating as an operand the storage location of data necessary when accessing the device such as the I/O port number for operation codes such as “inb” and “outb.”
By assigning I/O port numbers or IRQ numbers to devices that are connected in this way, the information processing device is able to recognize these devices, and by designating the I/O port number or IRQ number that is assigned to a device, is able to access the devices.
In a normal information processing device, the above-described process of initializing devices is carried out by firmware such as the BIOS (Basic Input/Output System) and the OS (Operating System).
A device initialization process for enabling access from the firmware to devices that are connected to the information processing device (first initialization process) is executed in the firmware. The device initialization process of devices for realizing basic functions of the information processing device such as, in the case of a personal computer, a disk device, keyboard, mouse, or video card is carried out in the firmware. Firmware is a program that is executed first upon introduction of the power supply to the information processing device and has the role of, for example, carrying out a check for breakdowns of the hardware of the information processing device and the above-described device initialization process, then loading the OS to memory from a non-volatile storage medium such as a hard disk, and executing the OS.
In the OS, on the other hand, a device initialization process (a second initialization process) is carried out to enable access to devices that are connected to the information processing device from the OS or a user application that operates on the OS. For example, in the case of a personal computer, initialization processes are carried out in the OS for devices that use the OS, such as devices that correspond to each of the device drivers belonging to the OS.
Thus, device initialization processes must be carried out a total of two times in the firmware and the OS at the time of start-up of an information processing device, and the activation of an information processing device therefore takes a long time when devices having time-consuming initialization processes are connected to the information processing device.
The time required for initialization processes depends on the types of devices, but a SCSI device that is connected using a SCSI (Small Computer System Interface) is one specific example of a device that involves a time-consuming initialization process. SCSI is an interface (standard) for carrying out the exchange of data between the information processing device and devices.
An information processing device uses, instead of the above-described I/O port numbers, identification numbers referred to as “SCSI-IDs” that have been set to SCSI devices in advance to identify the SCSI devices that are connected. The SCSI-IDs can be set by manipulating jumper switches that are installed in each SCSI device.
In the initialization process of SCSI devices that are connected, the information processing device designates each SCSI-ID in order and transmits a special signal to the SCSI bus.
When there is a SCSI device having the designated SCSI-ID, this SCSI device executes a response to the information processing device, and from this response from the SCSI device, the information processing device is able to detect and recognize that a SCSI device having the SCSI-ID is connected.
On the other hand, when a SCSI device having the designated SCSI-ID is not present, the information processing device waits for a response from a SCSI device until the passage of a set time interval that has been set in advance, and when there is no response, determines that a SCSI device having this SCSI-ID is not connected.
In this way, an information processing device successively carries out the above-described processes for recognizing SCSI devices for all SCSI-IDs in the SCSI device initialization process and generates a wait time of a set time interval with each designation of a SCSI-ID for which there is no device, and the SCSI device initialization process therefore becomes extremely time-consuming (refer to Sugaya Seiichi, “Detailed Commentary of SCSI-2” CQ Publishing, Aug. 15, 1994, pp. 47-53).
As described hereinabove, to achieve a state in which a device can be accessed from an information processing device, a device initialization process must be carried out at the time of activation of the information processing device. However, when the configuration of devices that are connected to the information processing device has not undergone any changes from the previous activation, a portion of the device initialization processes is unnecessary in some cases.
For example, a device that is connected to the information processing device continues to use the I/O port number and IRQ number that were assigned from the information processing device until the device has been disconnected from the information processing device or until a new device is connected to the information processing device and a change occurs in the configuration of devices that are connected to the information processing device.
In addition, when register information that is set in a register specific to the device is not information that is determined each time upon activation of the information processing device, such as a SCSI-ID that is set in advance in a device, i.e., is information that, once values have been determined, does not change until the device is disconnected from the information processing device, the device continues to use the same register information specific to the device.
Accordingly, when there is no change to the configuration of the connected devices, there will be no change to device control information necessary for access of devices by the information processing device such as I/O port numbers, IRQ numbers, and register information specific to devices, and as a result, the reuse of previously set device control information when again carrying out the device initialization process eliminates the need to carry out the process of setting device control information (device recognition process).
There are methods for omitting device recognition processes from the device initialization process by using the above-described feature to, when there has been no change to the configuration of devices connected to the information processing device, store device control information that has once been set in devices in a non-volatile storage medium, and then use the device control information that is stored in the non-volatile storage medium when again carrying out the device initialization process.
As an example that uses this method, JP-A-2006-259903 discloses a technique that omits device recognition processes by first storing in flash BIOS-ROM device information that includes device control information that has once been set in devices in a device initialization process in BIOS and then using the device information that has been stored in flash BIOS-ROM when again carrying out the device initialization process.
The configuration and operations of the system that uses the technique for omitting the device recognition process disclosed in JP-A-2006-259903 are next explained using the block diagram of FIG. 1 and the flow charts of FIGS. 2 and 3.
Explanation first regards the configuration of this system. As shown in FIG. 1, the system disclosed in JP-A-2006-259903 includes flash BIOS memory 1000, stores device information of each device such as memory information 1001 or drive information 1002 in flash BIOS memory 1000 in the device initialization process in BIOS at the time of activating the information processing device, and then uses the device information that has been stored when BIOS again carries out the device initialization process.
Explanation next regards the operations of the system that uses the technique disclosed in JP-A-2006-259903.
Referring to the flow chart of FIG. 2, the power supply is first applied to the information processing device (power supply ON) in S36.
A factor for wake-up is next acquired from EC/KBC in S37. EC/KBC measures the time interval that the power supply has been applied and, based on the length of this time interval, distinguishes whether the factor for wake-up is a simplified POST process or a normal POST process. The POST process refers to a collection of processes that are carried out automatically after the power supply has been applied. This POST process includes the device initialization process realized by the BIOS.
It is next determined whether the acquired factor for wake-up is a simplified POST process or a normal POST process in S38.
If the acquired factor for wake-up is a simplified POST process (YES in S38), the flag of the simplified POST process is set in flash BIOS-ROM 1000 in S39.
On the other hand, if the acquired factor for wake-up is a normal POST process (NO in S38), the memory device initialization process is started without setting the flag in S40.
It is next confirmed whether a flag has been set in flash BIOS-ROM 1000 in S41.
If a flag has not been set in flash BIOS-ROM 1000 (NO in S41), the memory initialization process is carried out in accordance with memory information 1001 that is the device information of the memory device stored in flash BIOS-ROM 1000 in S42.
On the other hand, if a flag has been set (YES in S41), memory information 1001 is acquired (read) from the memory device and the memory device initialization process carried out in accordance with the acquired memory information in S43, and the memory information 1001 that was acquired from the memory device is stored in flash BIOS-ROM 1000 in S44.
The initialization process of a memory device is completed by the above-described processes in S45.
The process next transitions to the flow chart of FIG. 3 and the drive device initialization process is started in S46.
It is next checked whether a flag has been set in flash BIOS-ROM 1000 in S47, and if a flag has been set (YES in S47), the drive device initialization process is carried out in accordance with drive information 1002 that is stored in flash BIOS-ROM 1000 and that is the device information of the drive device in S48.
On the other hand, if a flag has not been set (NO in S47), drive information 1002 is acquired (read) from the drive device and the drive device initialization process is carried out in accordance with acquired drive information 1002 in S49, and drive information 1002 that was acquired from the drive device is stored in flash BIOS-ROM 1000 in S50.
The BIOS then completes the drive device initialization process in S51 and activates the OS in S52.
In the technique disclosed in JP-A-2006-259903, the device recognition process is omitted from the device initialization process in the BIOS by means of these operations.
In addition, JP-A-2005-284491 discloses a technique for omitting various processes including device recognition processes from the OS initialization process by first storing a memory image at the time of completion of the OS initialization process in a nonvolatile storage medium in the OS initialization process and then, when again carrying out the OS initialization process, developing in memory the memory image that was stored.
In this way, an increase in the speed of activation of an information processing device can be achieved when device recognition processes for setting device control information are omitted from the device initialization process in the firmware or OS.
However, the techniques disclosed in JP-A-2006-259903 and JP-A-2005-284491 have problems, as next described.
The techniques disclosed in JP-A-2006-259903 and JP-A-2005-284491 use the feature in which device information that has once been acquired can be reused as long as there is no change to the configuration of devices connected to the information processing device and thereby shorten the time interval required for the device initialization process in the firmware or OS and achieve a faster activation of the information processing device.
These techniques therefore have the drawback in which a higher speed of activation of the information processing device cannot be achieved when a change has occurred in the configuration of devices that are connected to the information processing device.